package com.itshare.video.common.event;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

/**
 * 封装 event
 * @Author lyr
 * @create 2020/11/10 0:31
 */
@Lazy
@Component
public class EventUtils {
    @Resource
    ApplicationContext applicationContext;

    public void publishEvent(ApplicationEvent event) {
        applicationContext.publishEvent(event);
    }


    //
    // @Component
    // public static class EventLisetner {
    //     @EventListener
    //     public void getEvent0(AEVENT<String> e1) {
    //         System.out.println("hai");
    //         System.out.println(e1);
    //
    //     }
    //     @EventListener
    //     public void getEvent1(AEVENT<Integer> e2) {
    //         System.out.println("hai");
    //         System.out.println(e2);
    //     }
    // }
    //
    // @Data
    //
    // public static class AEVENT<T> extends ApplicationEvent{
    //     T obj;
    //     public AEVENT(Object source) {
    //         super(source);
    //     }
    // }


}
